Interprocedural Semantic Change-Impact Analysis using Equivalence Relations
نویسندگان
چکیده
Change-impact analysis (CIA) is the task of determining the set of program elements impacted by a program change. Precise CIA has great potential to avoid expensive testing and code reviews for (parts of) changes that are refactorings (semantics-preserving). Existing CIA is imprecise because it is coarse-grained, deals with only few refactoring patterns, or is unaware of the change semantics. We formalize the notion of change impact in terms of the trace semantics of two program versions. We show how to leverage equivalence relations to make dataflow-based CIA aware of the change semantics, thereby improving precision in the presence of semantics-preserving changes. We propose an anytime algorithm that allows applying costly equivalence relation inference incrementally to refine the set of impacted statements. We have implemented a prototype in SYMDIFF, and evaluated it on 322 real-world changes from open-source projects and benchmark programs used by prior research. The evaluation results show an average 35% improvement in the size of the set of impacted statements compared to standard dataflow-based techniques.
منابع مشابه
Refining Interprocedural Change-Impact Analysis using Equivalence Relations
Change-impact analysis (CIA) is the task of determining the set of program elements impacted by a program change. Precise CIA has great potential to avoid expensive testing and code reviews for (parts of) changes that are refactorings (semantics-preserving). Existing CIA is imprecise because it is coarse-grained, deals with only few refactoring patterns, or is unaware of the change semantics. W...
متن کاملSemantic Matching Using Concept Lattice
This paper describes how a concept lattice that represents semantic relations (synonymy, hyponymy, hypernymy) in a set of words can be used for semantic matching. This kind of concept lattice is the result of the formal concept analysis technique used for determining semantic relations in a set of words extracted from a monolingual dictionary. It is shown how relations between concepts can be m...
متن کاملType-Preserving Flow Analysis and Interprocedural Unboxing (Extended Version)
Interprocedural flow analysis can be used to eliminate otherwise unnecessary heap allocated objects (unboxing), and in previous work we have shown how to do so while maintaining correctness with respect to the garbage collector. In this paper, we extend the notion of flow analysis to incorporate types, enabling analysis and optimization of typed programs. We apply this typed analysis to specify...
متن کاملRelations between semantic security and indistinguishability against cpa, non-adaptive cca and adaptive cca in comparison based framework
In this paper we try to unify the frameworks of definitions of semantic security, indistinguishability and non-malleability by defining semantic security in comparison based framework. This facilitates the study of relations among these goals against different attack models and makes the proof of the equivalence of semantic security and indistinguishability easier and more understandable. Besid...
متن کاملA Generic Framework for Interprocedural Analyses of Numerical Properties
Relations among program variables like 1 + 3 · x1 + 5 · x2 ≡ 0 [224] have been called linear congruence relations. Such a relation is valid at a program point iff it is satisfied by all reaching program states. Knowledge about non-trivial valid congruence relations is crucial for various aggressive program transformations. It can also form the backbone of a program correctness proof. In his sem...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- CoRR
دوره abs/1609.08734 شماره
صفحات -
تاریخ انتشار 2016